package com.station.param.request.TransferOrder;

import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class TransferModelRequsest {
    private String IsDeleteEntry;
    private String SubSystemId;
    private String IsVerifyBaseDataField;
    private String IsEntryBatchFill;
    private String ValidateFlag;
    private String NumberSearch;
    private String IsAutoAdjustField;
    private String InterationFlags;
    private String IgnoreInterationFlag;
    private String IsControlPrecision;
    private String ValidateRepeatJson;
    private Model[] Model;

    @Data
    public static class Model {
        private Double FID;
        private FNumberObj FBillTypeID;
        private String FBizType;
        private String FTransferDirect;
        private String FTransferBizType;
        private FNumberObj FSaleOrgId;
        private FNumberObj FSettleOrgId;
        private FNumberObj FStockOutOrgId;
        private String FOwnerTypeOutIdHead;
        private FNumberObj FOwnerOutIdHead;
        private FNumberObj FStockOrgId;
        private boolean FIsPriceExcludeTax;
        private boolean FIsIncludedTax;
        private FNumberObj FExchangeTypeId;
        private FNumberObj FSETTLECURRID;
        private String FOwnerTypeIdHead;
        private Double FExchangeRate;
        private FNumberObj FOwnerIdHead;
        private Date FDate;
        private boolean FWriteOffConsign;
        private FBillEntry[] FBillEntry;
        private String FBillNo;
    }
    @Data
    public static class FNumberObj {
        private String FNUMBER;
        public FNumberObj(String FNUMBER){
            this.FNUMBER = FNUMBER;
        }
    }

    @Data
    public static class FBillEntry {
        private String FRowType;
        private FNumberObj FMaterialId;
        private FNumberObj FUnitID;
        private Double FQty;
        private FNumberObj FSrcStockId;
        private FNumberObj FDestStockId;
        private FNumberObj FSrcStockStatusId;
        private FNumberObj FDestStockStatusId;
        private String FBusinessDate;
        private String FSrcBillTypeId;
        private String FOwnerTypeOutId;
        private FNumberObj FOwnerOutId;
        private String FOwnerTypeId;
        private FNumberObj FOwnerId;
        private String FSrcBillNo;
        private Double FSecQty;
        private Double FExtAuxUnitQty;
        private FNumberObj FBaseUnitId;
        private Double FBaseQty;
        private boolean FISFREE;
        private String FKeeperTypeId;
        private Double FActQty;
        private FNumberObj FKeeperId;
        private String FKeeperTypeOutId;
        private FNumberObj FKeeperOutId;
        private Double FDiscountRate;
        private Double FRepairQty;
        private FNumberObj FDestMaterialId;
        private FNumberObj FSaleUnitId;
        private Double FSaleQty;
        private Double FSalBaseQty;
        private FNumberObj FPriceUnitID;
        private Double FPriceQty;
        private Double FPriceBaseQty;
        private Double FOutJoinQty;
        private Double FBASEOUTJOINQTY;
        private Double FSOEntryId;
        private boolean FTransReserveLink;
        private Double FQmEntryId;
        private Double FConvertEntryId;
        private boolean FCheckDelivery;
        private Double FBomEntryId;
    }
}
